<?php

include_once('connexion.php');

//Création de compte
if(isset($_POST['form_createAccount_submit']))
{
	$errorMessages = "";
	$login=htmlentities($_POST['form_createAccount_login']);
	$_SESSION['createLogin']=$login;
	$pass=htmlentities($_POST['form_createAccount_pass']);
	$pass2=htmlentities($_POST['form_createAccount_pass2']);
	/* $gender=htmlentities($_POST['form_createAccount_gender']);
	$_SESSION['createGender']=$gender;
	$firstName=htmlentities($_POST['form_createAccount_firstName']);
	$_SESSION['createFirstName']=$firstName;
	$lastName=htmlentities($_POST['form_createAccount_lastName']);
	$_SESSION['createLastName']=$lastName; */
	$mail=htmlentities($_POST['form_createAccount_email']);
	$_SESSION['createEmail']=$mail;
	/* $tel=htmlentities($_POST['form_createAccount_tel']);
	$_SESSION['createTel']=$tel; */
	//Vérification que les champs sont bien remplis
	if($login=="")
	{
		$errorMessages.="Veuillez saisir un login.<br />";
		$_SESSION['createLogin']="";
	}
	if($pass=="") $errorMessages.="Veuillez saisir un mot de passe.<br />";
	if($pass2=="") $errorMessages.="Veuillez confirmer votre mot de passe.<br />";
	/* if($gender=="") $errorMessages.="Veuillez sélectionner votre civilité.<br />";
	if($firstName=="")
	{
		$errorMessages.="Veuillez saisir votre prénom.<br />";
		$_SESSION['createFirstName']="";
	}
	if($lastName=="")
	{
		$errorMessages.="Veuillez saisir votre nom.<br />";
		$_SESSION['createLastName']="";
	} */
	if($mail=="")
	{
		$errorMessages.="Veuillez saisir une adresse email.<br />";
		$_SESSION['createEmail']="";
	}
	//Vérification que le mot de passe est OK
	if($pass!="" && $pass2!="" && $pass!=$pass2) $errorMessages.="Erreur lors de la saisie de votre mot de passe.<br />";
	//Vérification que le login et l'email ne sont pas déjà utilisés
	if($userManager->exist($login))
	{
		$errorMessages.="Le login saisi correspond à un compte déjà existant.<br />";
		$_SESSION['createLogin']="";
	}
	if($userManager->exist($mail))
	{
		$errorMessages.="Le mail saisi est déjà associé à un compte existant.<br />";
		$_SESSION['createEmail']="";
	}
	//Vérification que l'email a un format OK => regex pour mail : au moins 1 caractère + un @ + au moins 1 caractère texte + un "." + entre 2 et 4 caractères texte
	$regex_mail="#^[-.\w]+@[-.\w]{2,}\.[\D]{2,4}$#";
	if($mail!="" && !preg_match($regex_mail, $mail))
	{
		$errorMessages.="L'email saisi n'est pas valide.<br />";
		$_SESSION['createEmail']="";
	}	
	/* //Vérification que le téléphone, s'il est saisi, a un format OK => regex pour n° de téléphone : 10 chiffres + Commence par 06 ou 07 + Que des chiffres
	$regex_tel="#^0[67][-\s\.]?(\d{2}[-\s\.]?){4}$#";
	if($tel!="" && !preg_match($regex_tel, $tel))
	{
		$errorMessages.="Le n° de téléphone saisi n'est pas un n° de mobile valide.<br />";
		$_SESSION['createTel']="";
	} */
	//Si toutes les conditions ci-dessus sont OK : création nouveau user dans la BDD + envoi mail A/R
	if($errorMessages=="")
	{
		$newUser = new User(array(
			'login' => $login,
			'password' => sha1($pass),
			'gender' => "",
			'firstName' => "",
			'lastName' => "",
			'mail' => $mail,
			'tel' => "")
			);
		$userManager->add($newUser);
		$_SESSION['userConnected'] = $userManager->getLast();
		
		//Mail
		$subject='Création de votre compte Kilbet';
		if(Config::$ENV == "DEV")
		{
			$urlProfile='http://localhost/kilbet/profile.php?userid='.$_SESSION['userConnected']->id().'&from=mail';
		}
		elseif(Config::$ENV == "PROD")
		{
			$urlProfile='http://www.kildev.fr/profile.php?userid='.$_SESSION['userConnected']->id().'&from=mail';
		}
		$text = '
			<html>
				<head>
					<title>Création de votre compte Kilbet</title>
				</head>
				<body>
					<p>Bonjour <a href="'.$urlProfile.'" alt="Consulter profil">'.$_SESSION['userConnected']->login().'</a>,</p>
					<p>Félicitations ! <br />
					Vous venez de créer un compte Kilbet. Vous pouvez dès maintenant vous mesurer à vos proches, amis, collègues dans les différents concours de pronostics proposés sur Kilbet.<br /></p>
					<p>Bonne chance,<br />
					L\'équipe Kilbet</p>
				</body>
			</html>
		';
		$message = New Message(array(
			'contest_id' => 0,
			'responseMessage_id' => 0,
			'messageFrom' => '',
			'mailFrom' => '',
			'messageTo' => $_SESSION['userConnected']->id(),
			'mailTo' => $_SESSION['userConnected']->mail(),
			'subject' => $subject,
			'text' => $text,
			'sendMail' => 1,
			'category_id' => 4
		));
		$messageManager->add($message);
		header('Location: create_account.php?action=creationSuccessful');
	}
	//Si au moins une erreur : on renvoie la variable contenant le(s) message(s) d'erreur
	else
	{
		$_SESSION['createAccountMessage']=$errorMessages;
		if($referer == "index.php") header('Location: index.php');
		else header('Location: create_account.php?action=create');
	}
}

//Traitement de la récupération de mot de passe
elseif(isset($_POST['form_lostPassword_submit']))
{
	$errorMessages="";
	
	$mail=htmlentities($_POST['form_lostPassword_mail']);
	$_SESSION['lostPassEmail']=$mail;
	
	//Vérification que les champs sont bien remplis
	if($mail=="")
	{
		$errorMessages.="Veuillez saisir une adresse email.<br />";
		$_SESSION['lostPassEmail']="";
	}
	
	//Vérification que l'email existe bien
	if(!$userManager->exist($mail))
	{
		$errorMessages.="Le mail saisi ne correspond à aucun compte existant.<br />";
		$_SESSION['lostPassEmail']="";
	}
	
	//Vérification que l'email a un format OK => regex pour mail : au moins 1 caractère + un @ + au moins 1 caractère texte + un "." + entre 2 et 4 caractères texte
	$regex_mail="#^[-.\w]+@[-.\w]{2,}\.[\D]{2,4}$#";
	if($mail!="" && !preg_match($regex_mail, $mail))
	{
		$errorMessages.="L'email saisi n'est pas valide.<br />";
		$_SESSION['lostPassEmail']="";
	}
	
	//Si toutes les conditions ci-dessus sont OK : récupération du password décrypté et envoi par mail
	if($errorMessages=="")
	{
		$userLostPassword = $userManager->get($mail)[0];
		
		$char = 'abcdefghijklmnopqrstuvwxyz0123456789';
		$newPassword = substr(str_shuffle($char), 0, 8);
				
		$login = $userLostPassword->login();
		
		// $url="http://www.kildev.fr/index.php";
		$url="http://localhost/kilbet/index.php";
		$message = '
			<html>
				<head>
					<title>Récupération de votre mot de passe Kilbet</title>
				</head>
				<body>
					<p>Bonjour '.$login.',</p>
					<p>Suite à une demande effectuée le '.date("d\/m\/Y \à H\hi\m").' sur <a href="'.$url.'" alt="Kilbet - The first social betting platform">Kilbet.fr</a>, vous trouverez ci-dessous votre nouveau mot de passe.</p>
					<p>Pour des raisons de sécurité, l\'équipe Kilbet vous conseille une fois la connexion à votre compte Kilbet effectuée, de modifier ce mot de passe.</p>
					<p>Mot de passe : '.$newPassword.'</p>
					<p>L\'équipe Kilbet</p>
				</body>
			</html>
		';
		
		$headers  = 'MIME-Version: 1.0' . "\r\n";
		$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
		$headers .= 'From: Noreply Kilbet <noreply@kilbet.fr>' . "\r\n";
		
		//Envoi du mail
		mail($mail, 'Kilbet - Votre mot de passe', $message, $headers);
		
		//Mise à jour du mot de passe du user avec le nouveau mot de passe généré
		$userLostPassword->setPassword(sha1($newPassword));
		$userManager->update($userLostPassword);
		
		header('Location: create_account.php?action=sendPasswordSuccessful');
	}
	//Si au moins une erreur : on renvoie la variable contenant le(s) message(s) d'erreur
	else
	{
		$_SESSION['lostPasswordMessage']=$errorMessages;
		header('Location: create_account.php?action=lostPassword');
	}
}

?>